package com.jhy.suixianglu.daima20230205;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 一个队列实现我们的栈功能
 * 主要思想 是：一个队列当中实现
 * 每次我们进队列的时候 先进入 后改变其他位置上面的元素
 * ；例如 开始 1 不做操作
 *       进入2   因为是队列 所以 是  1 2 改变为 2 1 这样出来后就是 2先出来了
 *       进入 3  开始 是 2 1 3 改变 后为  3 2 1 变成了 先进后出
 *
 */
public class MyStack {

    Queue<Integer> queue;
    public MyStack() {
        queue  = new LinkedList<>();
    }
    public void push(int x) {
        queue.add(x);
        work();
    }

    public int pop() {
        return queue.poll();
    }

    public int top() {
        return queue.peek();
    }

    public boolean empty() {
        return queue.isEmpty();
    }
    public void work(){
        int size = queue.size();
        for (int i = 0; i < size - 1; i++) {
            Integer poll = queue.poll();
            queue.add(poll);
        }
    }
}
